package com.leetcode.stack;

import java.util.Stack;

/**
 * @author: ZhouBert
 * @date: 2019/10/11
 * @description:	844. 比较含退格的字符串
 * A
 * 给定 S 和 T 两个字符串，当它们分别被输入到空白的文本编辑器后，判断二者是否相等，并返回结果。 # 代表退格字符。
 *
 * 示例 1：
 * 输入：S = "ab#c", T = "ad#c"
 * 输出：true
 * 解释：S 和 T 都会变成 “ac”。
 *
 * 示例 2：
 * 输入：S = "ab##", T = "c#d#"
 * 输出：true
 * 解释：S 和 T 都会变成 “”。
 *
 * 示例 3：
 * 输入：S = "a##c", T = "#a#c"
 * 输出：true
 * 解释：S 和 T 都会变成 “c”。
 *
 * 示例 4：
 * 输入：S = "a#c", T = "b"
 * 输出：false
 * 解释：S 会变成 “c”，但 T 仍然是 “b”。
 *
 * 提示：
 * 1 <= S.length <= 200
 * 1 <= T.length <= 200
 * S 和 T 只含有小写字母以及字符 '#'。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/backspace-string-compare
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class BackspaceCompare844 {

	/**
	 * 这是个很简单的栈的题目
	 * 转为 Char 数组->入栈处理，碰到#就出栈（除了栈空）->最后比较两个栈
	 * @param S
	 * @param T
	 * @return
	 */
	public boolean backspaceCompare(String S, String T) {
		return dealStr(S).equals(dealStr(T));
	}

	public static Stack<Character> dealStr(String s){
		char[] chars = s.toCharArray();
		Stack<Character> stack=new Stack<>();
		for (int i = 0; i < chars.length; i++) {
			if (chars[i]=='#'){
				if (!stack.empty()){
					stack.pop();
				}
			}else {
				stack.push(chars[i]);
			}
		}
		return stack;
	}

	public static void main(String[] args) {

	}
}
